Model-driven architecture (MDA) is an approach to software development advocated by the Object Management Group (OMG). See A. Kleppe, J. Warmer and W. Bast, “MDA Explained: The Model Driven Architecture: Practice and Promise”, Addison-Wesley, Boston, Mass., 2003. It provides a set of guidelines for structuring software specifications in the form of models. The approach suggests describing a software system's specifications using a platform independent model (PIM). A PIM is usually specified in a language defined using the Meta Object Facility (MOF), a standard by the OMG for describing modeling languages. A prominent example of such a language is the Unified Modeling Language (UML), a general purpose modeling language that is well adopted by the software engineering community. Alternatives to UML also exist and are collectively referred to as Domain Specific Languages (DSL), as they are more specialized and target certain domains. See M. Mernik, J. Heering, and A. M. Sloane, “When and How to Develop Domain-Specific Languages.” ACM Computing Surveys, 37(4):316-344, 2005.
Once a software system has been specified using a PIM, a platform is then chosen to realize it using specific implementation technologies, producing what is referred to as a platform specific model (PSM). A PSM can be specified using several domain specific languages. The process of going from (translating) a PIM to a PSM is called model-to-model transformation and can usually be automated.
An alternative way to defining DSLs is through UML profiles. A UML Profile is a light-weight extensibility mechanism for UML. It contains a collection of stereotypes extending certain types from UML and adding properties to them. Unlike a heavy weight extension, which is done by extending the meta-model (an M2 level model), a profile is an M1-level extension. In this regard, extending M2 using M1 constructs, a profile is unique and presents interesting challenges to tool developers and users.
The challenge for modeling tool is to allow users to work seamlessly with profiles and MOF-based DSLs. One kind of tool where this challenge presents itself is model to model transformation tools. A typical requirement here is to develop transformations from UML models with certain applied profiles to UML models with different applied profiles. Alternatively, the transformations could be from UML models with applied profiles to other MOF-based DSLs, or vice versa. For example transformations see: OMG, MOF QVT Final Adopted Specification, OMG Document ptc/05-11-01; P. Swithinbank, M. Chessell, T. Gardner, C. Griffin, J. Man, H. Wylie and L. Yusuf, “Patterns: Model-Driven Development Using IBM Rational Software Architect (Section 9.5.2),” IBM Redbooks at redbooks.ibm.com; R. Popma “JET Tutorial,” at articles at eclipse.org; C. Griffin “IBM Model Transformation Framework 1.0.0: Programmer's Guide. 2004,” at alphaworks.ibm.com; Fujaba Tool Suite 4, University of Paderborn Software Engineering, www.fujaba.de; G. Taentzer “AGG: A Graph Transformation Environment for Modeling and Validation of Software.” Application of Graph Transformations with Industrial Relevance (AGTIVE '03) 3062, pp. 446-453 (2003). These and most transformation approaches today, either do not attempt to solve this problem or leave it to the user to deal with it. However, given the fact that profile implementations are almost always different from those of DSLs, users are faced with steep learning curves and a lot of complexities coming from dealing with two different meta-level constructs.